package com.ruoyi.ldzlsc.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.web.domain.BaseEntity;
import lombok.Data;
import lombok.ToString;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 生产订单对象 sc_production_order
 *
 * @author ldzl
 * @date 2025-05-27
 */
@Data
@ToString(callSuper = true)
public class ScProductionOrder extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long productionOrderId;

    /** 生产订单编号 */
    private String prodOrderCode;

    /** 销售订单ID */
    private Long salesOrderId;

    /** 生产状态 */
    private String status;

    /** 库存检查标记 */
    private String stockCheck;

    /** 库存充足标记 */
    private String stockEnough;
    
    /** 备注 */
    private String remark;

    /** 逻辑删除标记 */
    private String isDelete;
    
    /** 优先级 */
    private String priority;

    /** 自动生成生产计划标记（非数据库字段） */
    private Boolean autoGeneratePlan;

    /** 源单号（非数据库字段） */
    private String salesOrderCode;
    
    /** 交付日期（非数据库字段，来自销售订单） */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date deliveryDate;
    
    /** 客户名称（非数据库字段，来自销售订单） */
    private String customerName;
    
    /** 客户编码（非数据库字段，来自客户表） */
    private String customerCode;
    
    /** 客户类型（非数据库字段，来自客户表） */
    private String customerType;
    
    /** 联系人（非数据库字段，来自客户表） */
    private String customerPerson;
    
    /** 联系电话（非数据库字段，来自客户表） */
    private String customerPhone;
    
    /** 产品明细列表（非数据库字段） */
    private List<ScProductionOrderDetail> products;
    
    /** 生产计划列表（非数据库字段） */
    private List<Map<String, Object>> plans;
    
    /** 工单列表（非数据库字段） */
    private List<Map<String, Object>> workOrders;
}
